L'objectif de ce cours n'est pas de faire de vous des codeurs de JavaScript experts, mais simplement de vous donner les clés qui vous permettront d'explorer ce langage.

Javascript est un langage de programmation coté client (tout se passe sur votre machine) à contrario de php qui lui est déporté coté serveur.

C'est un langage qui va nous permettre de créer de l'interaction entre l'utilisateur et le client.

Une page web basique pour travailler.

Où placer le javascript

Le JavaScript se place à trois endroits différents :

Dans l'élément head

Dans ce cas, il faudra placer le JavaScript à l’intérieur d’une balise script.

On placera généralement l’élément script à la fin de notre élément head.

<script> alert("Au secours !!");</script>

Dans l'élément body

Dans ce cas aussi, il faudra placer le JavaScript à l’intérieur d’une balise script.

<script> alert("Au secours !!");</script>

Dans un fichier séparé

C’est très souvent la méthode recommandée dans le cas de gros projets car elle permet une meilleure maintenabilité du code grâce à la séparation des langages, et car on va pouvoir réutiliser un même code JavaScript dans plusieurs fichiers HTML.

Dans ce cas, nous allons devoir lier nos fichiers HTML et JavaScript en utilisant à nouveau un élément script et son attribut src.

Par exemple, si l'on souhaite lier un fichier JavaScript script.js à un fichier HTML placé dans le même dossier nous écrirons à la fin du body:

<script src="script.js"> </script>

Dans le fichier script.js, on pourra écrire par exemple :

alert("JS...easy !");

Tester les trois méthodes séparément puis en même temps sur un fichier html à votre disposition.

Code de déblocage de la correction :

Indenter et commenter

Indenter

Pour savoir quand indenter, il suffit de penser en terme de hiérarchie comme on le faisait déjà en HTML.

Une bonne pratique est d'effectuer un retrait vers la droite équivalent à une tabulation à chaque fois qu'on écrit une nouvelle ligne de code à l'intérieur d'une instruction JavaScript.

Commenter

On commente en js comme on commente en CSS :

/* ceci est un commentaire */

Variables

Une variable JavaScript est un conteneur servant à stocker temporairement une information. Comme un langage de programmation comme python.

Contrairement à Python, il faudra déclarer les variables. Avec des noms suivant les règles d'hygiène déjà soulignées précédemment du type camelCase.

Le nom des variables est sensible à la casse, c'est à dire qu'une variable portant le nom a n'est pas la même que celle qui porte le nom A.

pour observer nos variables nous les afficherons dans la console de votre navigateur.

Un bloc en JavaScript est délimité par des accolades { }.

Dans tout ce cours nous allons travailler sur un fichier html que l'on complétera/modifiera à volonté. Vous pouvez prendre un fichier html à vous ( cahier de bord ) ou télécharger celui-ci fichier Html de base.

On observera le résultat de nos codes dans un navigateur et dans la console (F12 suivi de l'onglet console ).

A chaque fois que nous terminerons un exercice il faudra le mettre en commentaire pour éliminer les interactions avec les exercices suivants.

Ajouter le code suivant à votre fichier de travail :

Qu'observez vous?

Code de déblocage de la correction :

Il y a trois manières de déclarer une variable en JS : let, constet var

L'instruction let

Elle permet de déclarer une variable de manière globale ou locale de manière simple :

<script>
    let maVar = false;
    console.log(maVar);
</script>

        

Il n’est pas obligatoire de déclarer une variable avec sa valeur initiale. Cela peut-être fait ensuite.

Ecrivez ce code:


<script>
    let maVar2;
    console.log(maVar2);
 </script>

Expliquez le undefined dans la console.

Code de déblocage de la correction :

Comme c’est une variable, on peut modifier sa valeur après sa déclaration :

Ecrivez ce code :


<script>
    maVar=true;
    console.log(maVar);
    maVar=maVar+maVar;
    console.log(maVar);
</script>
        

Expliquez le 2 apparu dans la console.

Code de déblocage de la correction :

Une variable déclarée avec let peut être

Ecrivez le code suivant :


<script>
    let maVar2 = "j'ai changé de valeur !"
    console.log(maVar2);
    {
        let maVar3 ="je suis nouvelle";
        maVar2=" je suis modifiée dans le bloc";
        console.log(maVar3);
        console.log(maVar2);
    }
    console.log(maVar2);
    console.log(maVar3);
    
</script>
        
  1. Expliquez le message d'erreur envoyé par la console.
  2. Modifiez le code pour que la variable s'affiche dans la console sans enlever les acccolades.

Code de déblocage de la correction :

L'instruction const

A l’inverse de let, const a besoin d’être déclaré avec une valeur initiale.

Ecrire le code suivant :


    <script>
    const maVar4;
    </script>

Expliquez le message d'erreur présent dans la console.

Code de déblocage de la correction :

La variables déclarées avec l'instruction const peut être globale ou locale comme avec l'instruction let.

const est pour constante.Cette instruction permet de déclarer une variable à assignation unique.

Si la variable définit un est flottant ou un entier ou encore une chaine de caractère, on peut considérer que la variable est constante et donc elle ne pourra pas être modifiée.

Expliquez le message d'erreur envoyé par ce script.


<script>
    const maVar="je suis une constante !";
    console.log(maVar);
    maVar="Puisque je vous dis que je suis une constante !!!"
</script>
            

Par contre si la variable est un tableau, on ne peut tout à fait modifier le tableau sans en changer sa nature.

Ecrivez le code suivant :


<script>
    const tabl = [];
    console.log(tabl);
    tabl.push(1);
    console.log(tabl);
    tabl.push(2);
    console.log(tabl);
    tabl.push("j'ai compris");
    console.log(tabl);
</script>
        

Expliquez ce que fait la méthode push.

on n'avait pas dit que l'instruction const ne définissait pas une constante?

L'instruction var

L'instruction var est à éviter depuis 2015 (ES6).

La variable var est ,globale

Utilisez les instructions let et const.

Bilan

En définitive retenez qu'on privilégiera l'usage de const en 1 et de let en 2 et on évitera var.

Ecrire un fichier html dans lequel vous afficherez la valeur de $x^2+3y\times z$. Il faudra déclarer quatre variables et afficher le résultat à l'aide de la fonction alert

Pour comprendre ce que fait alert testez le code suivant :


<script>
    alert("12 Mars 1989 : première version du Web");
</script>
                    

Les fonctions.

La définition d'une fonction est introduite par le mot clé function suivi de ses arguments, puis du code de la fonction entre accolades { }

Le résultat de la fonction est indiqué par le mot-clé return.

Observer la déclaration de la fonction suivante :
function carre(i){
    return(i*i)
    }
     

Cette déclaration peut se faire à l'intérieur de l'élément head (dans un élément script) ou bien directement dans un fichier .js, comme nous l'avons vu précédemment. Mais cette déclaration ne doit pas se faire à l'intérieur de l'élément body.

Cette procédure permet de déclarer une fonction, il faut maintenant afficher le résultat.

Observer le code suivant :
<script> document.write("La fonction renvoie",carre(2),".");</script>
  1. Ecrire une fonction f en Javascript qui à une valeur $x$ renvoie $x^2-3x+1$. On affichera l'image de 1 et de -1.
  2. Réaliser un tableau de valeur de la fonction précédente de 0 à 5 avec un pas de 1. (utiliser la balise table)

Quelques aides et astuces :

Vous pouvez incorporer du code javascript dans du code html.

Vous pouvez incorporer du code html dans votre code javascript. Tester le code suivant :

<script> document.write("<h1>Ceci est un titre de niveau 1 en HTML</h1>");</script>

Pour faire une boucle en javascript (exemple d'une boucle de 3 à 10 exclu avec un pas de 1 ) :

for (i=3; i<10;i++){ } 

la méthode prompt().

La méthode prompt fournit un moyen simple de récupérer une information provenant de l'utilisateur, on parle alors de boîte d'invite. La méthode prompt() requiert deux arguments :

Voila un exemple :

On commence par créer une fonction dans le .js

function demande(){
                x=prompt("quel âge as tu?","réponse")
                    return x
                }

Ensuite on utilise une méthode write pour afficher la réponse dans la page HTML :

<script> document.write(demande());</script>
Réaliser une fonction js qui utilise la méthode prompt et fait quelque chose avec la valeur saisie. Par exemple, lire un nombre au clavier et afficher, en utilisant la fonction carrée, le carré du nombre entré.

Les événements : Interaction utilisateur/client

Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est possible d'associer des fonctions, des méthodes à des événements tels que le passage de la souris au-dessus d'une zone, le changement d'une valeur, ...

La syntaxe d'un gestionnaire d'événement est la suivante :

onEvenement="Action_Javascript_ou_Fonction();"

Une premier événement: Click.

<p onClick="alert('METTRE DE LA COULEUR');">Cliquez ici</p>

querySelector()

La méthode querySelector() sélectionne le premier élément dans le document correspondant au sélecteur - ou groupe de sélecteurs - spécifié(s), ou null si aucune correspondance n'est trouvée.

Créer une fonction dans votre fichier .js comme celle-ci:

function text_rouge(){
document.querySelector("p").style.color="red"
}

Si vous ne possédez qu'un seul paragraphe créer en un puis un autre avec cette syntaxe :

<p onclick="text_rouge()">Je veux du rouge !</p>

Que se passe-t-il?

Vous devriez observer que seulement votre premier élément dans le sélecteur p est coloré. C'est normal, rappelez vous que la méthode querySelector() ne sélectionne que le premier sélecteur de la page.

Pour remédier à cela il va falloir donner un id au sélecteur de votre choix

Modifiez votre code comme ceci :
<p id="r" onclick="text_rouge()">Je veux du rouge !</p>

Puis modifier votre fonction dans le .js comme ceci :

function text_rouge(){
                document.querySelector("#r").style.color="red"
                }

Observer alors votre page internet

Nous avons fait appel au sélecteur id et #, nous aurions pu utiliser class et .

Modifier votre fonction Javascript pour que l'ensemble des p avec une class r deviennent rouge en cliquant dessus.

Créer une fonction Javascript text(couleur) qui colore le texte de la couleur indiquée en argument. Attention c'est assez difficile car il faut utiliser la méthode querySelectorAll qui renvoie un tableau (une liste) d'éléments. Il faut donc traiter ensuite les cas un par un. Tester cette fonction sur plusieurs p et plusieurs couleurs (au moins 2). Si vous réussissez cet exercice, appelez votre professeur pour le faire valider.

Un exemple avec un bouton

Pour finir, nous allons intégrer à notre page un bouton qui va nous permettre de fermer la page par un ou deux clics.

Cela nous permettra de voir un exemple avec une structure conditionnelle "if"

Pour commencer intégrer cette fonction dans votre .js
function quit()
        {
            if (confirm("Tu veux vraiment partir? :'("))
            {
                alert("à bientôt !");
                close();
            }
        }

Prenez le temps d'observer de de commenter ce script.

Ajoutez ensuite un bouton comme ceci :

<button onclick="test()">Tester le bouton</button>

Testez votre script. Attention, il y a une erreur à corriger pour que cela fonctionne.

Nous reviendrons sur le JavaScript plus tard dans l'année quand nous ferons des formulaires par exemple.

Projet

Votre travail est de réaliser un script Javascript commenté que vous intégrerez dans votre site.

Vous réaliserez une vidéo de deux minutes maximum qui montre votre travail (code + effet)

Ce n'est pas chose aisée, venez nous voir, fouillez sur le net dans la sitographie par exemple.

Si cela vous semple compliqué, réaliser l'exercice suivant :

Ecrire une fonction qui donne le nombre de clics et le temps passé une page web.

Sitographie

Licence Creative Commons
Les différents auteurs mettent l'ensemble du site à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International